/**@file queue.c
 * @note 
 * @brief  测试代码                 简单环形队列实现
 * 
 * @author   luoxi
 * @date     20230106
 * @version  V1.0.0
 * 
 * @note ///Description here 
 * @note History:        
 * @note     <author>   <time>    <version >   <desc>
 * @note  
 * @warning  
 */
 
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
#include <stdbool.h>

#include "log_level.h"
#include "usercomm.h"

#define MAXSUM 6                 /* 确定环形队列的最大长度 */
int data[MAXSUM] = {0};          /* 环形队列存储数据的地方 */
int top = 0, rear = 0;           /* 输入和输出的位置 */
void rec_data(int value)
{
	data[top] = value;
	top = (top + 1) % MAXSUM;    /* 循环队列保存值 */
}
 
int send_data()
{
	int value =0;
	value = rear;
	rear = (rear + 1) % MAXSUM;  /* 循环出队列 */
	return (data[value]);
}
 
/** @fn :      queue_test
 * @brief :    队列测试函数
 * @param ：   NULL
 * @param ：   
 * @return :   返回字符串长度
 */ 
void queue_test()
{
	int key_value = 0;
	rec_data(1);
	log_custom("data[0] = %d]", data[0]);
	rec_data(2);
	log_custom("data[1] = %d]", data[1]); 
	rec_data(3);
	log_custom("data[2] = %d]", data[2]);
	rec_data(4);
	log_custom("data[3] = %d]", data[3]);
	rec_data(5);
	log_custom("data[4] = %d]", data[4]);
	rec_data(6);
	log_custom("data[5] = %d]", data[5]);
	rec_data(7);
	log_custom("data[0] = %d]", data[0]);
	rec_data(8);
	log_custom("data[1] = %d]", data[1]);
	log_custom("data[2] = %d]", data[2]);
	log_custom("data[3] = %d]", data[3]);
	 
	key_value = send_data();
	log_custom("key1 = %d]", key_value);
	key_value = send_data();
	log_custom("key2 = %d]", key_value);
	key_value = send_data();
	log_custom("key3 = %d]", key_value);
	key_value = send_data();
	log_custom("key4 = %d]", key_value);
}




